package com.learn.kafka.timestamp;

import com.learn.kafka.config.ProducerProperties;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

/**
 * 发送时间戳关联消息的生产者（继承通用配置父类）
 *
 * @author: learn.kafka
 */
public class TimetampProducer extends ProducerProperties {

    public static void main(String[] args) {
        new TimetampProducer().sendMessages();
    }

    // 构造方法：可根据需要覆盖父类配置（如添加时间戳相关配置）
    public TimetampProducer() {
        super(); // 调用父类构造方法，加载通用配置
        // 如需添加时间戳相关特殊配置，可在此处扩展
        // 例如：设置消息时间戳类型（CreateTime/LogAppendTime）
        // setConfig("log.message.timestamp.type", "CreateTime");
    }

    // 发送消息的逻辑
    private void sendMessages() {
        // 从父类获取生产者实例
        Producer<Integer, String> producer = createProducer();

        try {
            // 发送消息到主题 "a4part2repq"（与 TimestampConsumer 对应）
            producer.send(new ProducerRecord<>("a4part2repq", 1, "1a"));
            producer.send(new ProducerRecord<>("a4part2repq", 2, "2a"));
            producer.send(new ProducerRecord<>("a4part2repq", 3, "3a"));
            producer.send(new ProducerRecord<>("a4part2repq", 4, "4a"));

            System.out.println("消息发送完成");
        } finally {
            // 关闭生产者，释放资源
            producer.close();
        }
    }
}
